/********************************************************************************
* This program is free software; you can redistribute it and/or modify it under *
* the terms of the GNU General Public License as published by the Free Software *
* Foundation; either version 2 of the License, or (at your option) any later 	*
* version. This program is distributed in the hope that it will be useful, but 	*
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more *
* details. You should have received a copy of the GNU General Public License 	*
* along with this program; if not, write to the Free Software Foundation, Inc., *
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.						*
* (c) Copyright 2012 José Delgado Pérez, josedelgado@ula.ve josed43@gmail.com.	*				*
********************************************************************************/

/**
 @file definicion.h
 @brief Se definen todos los comandos y parámetros de comunicación con el PC usados por main.
 @date Diciembre, 2012.
 @author José Delgado Pérez, josedelgado@ula.ve josed43@gmail.com.
 @version 0.9
*/

/***************** Definición de los comandos *******************/

/** Comando de solicitud de la medida de un sensor US (recibe el parámetro ID_SENSOR) */
#define OBTENER_MEDIDA_US 0X11

/** Comando de solicitud de la medida de un sensor IR (recibe el parámetro ID_SENSOR) */
#define OBTENER_MEDIDA_IR 0X12

/** Comando de solicitud de la medida del sensor US trasero (recibe el parámetro ANGULO) */
#define OBTENER_MEDIDA_UST 0X13

/** Comando de solicitud de la medida de todos los sensores US ubicados en el frente del robot */
#define	OBTENER_BARRIDO_FRONTAL_US 0X14

/** Comando de solicitud de la medida de todos los sensores IR ubicados en el frente del robot */
#define	OBTENER_BARRIDO_FRONTAL_IR 0X15

/** Comando de solicitud del barrido en 5 grados del sensor US ubicado en la parte trasera del robot */
#define OBTENER_BARRIDO_TRASERO 0X16

/************* Identificadores de inicio y fin de una cadena de comando *****************/

/** BYTES que indica el inicio de un comando */
#define BYTE_INICIO_COMADO 0X00

/** BYTES que indica el fin de un comando */
#define BYTE_FIN_COMADO 0xFF

/** Tamaño máximo de la cadena de bytes enviada desde el PC para indicar un comando (incluye el byte de inicio y fin de comando) */
#define SIZE_MAX_COMADO 4

/************** Parametros de comunicación con el PC ************/

/** Velocidad de la comunicación Serial en Baudios */
#define BAUDIOS_SERIAL 9600

/** Delay de la comunicación serial (Indica el tiempo en milisegundos que se debe esperar después de detectar un valor en el
 * bufer, para que llegue la trama completa). Si se añaden comandos con tramas mas grandes este tiempo debe ser calculado*/
#define DELAY_SERIAL 9
